文章目录
  1. 1. forward(转发)
  2. 2. redirect(重定向)

forward(转发)

是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址.

redirect(重定向)

是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

区别:

转发是服务器行为,重定向是客户端行为。

1 )请求转发只能将请求转发给同一个WEB应用中的组件,而重定向还可以重新定向到同一站点不同应用程序中的资源,甚至可以定向到一绝对的URL。

2)重定向可以看见目标页面的URL,转发只能看见第一次访问的页面URL,以后的工作都是有服 务器来做的。

3) 请求响应调用者和被调用者之间共享相同的request对象和response对象,重定向调用者和被调用者属于两个独立访问请求和响应过程。

4)请求重定向:不加/是相对于本servlet所在请求的目录,加“/”表示端口号后面的根目录 http://localhost:8080/

请求转发:不加/是相对于本servlet,加/表示web应用的根目录http://localhost:8080/Test/

———path”/“路径———

—–只要是需要通过浏览器发送请求的地方(比如html代码,sendRedirect方法等)“/“一般代表虚拟主机根目录,即相当于端口号之后的“/”,例:http://localhost:8080/

——服务器程序内部跳转,“/”一般代表本web应用的根目录,如请求转发。例:http://localhost:8080/Test/

文章目录
  1. 1. forward(转发)
  2. 2. redirect(重定向)